//
//  LyWelcomeViewController.swift
//  LySwift微博
//
//  Created by 贠明东 on 15/11/29.
//  Copyright © 2015年 itcCZ. All rights reserved.
//

import UIKit

class LyWelcomeViewController: UIViewController {

    //:MARK - 属性
    ///iconView底部约束
    private var iconViewButtomCon: NSLayoutConstraint?
    
    override func viewDidLoad() {
        super.viewDidLoad()

        prepareUI()
    }
    
    /// 在用户看得到View的时候开始做动画
    override func viewDidAppear(animated: Bool) {
        super.viewDidAppear(animated)
        
        //做动画
        moveAnimateion()
    }
    
    //:MARK : - 头像动画
    private func moveAnimateion() {
        // 使用autolayout布局之后,不要去修改View的fram,bounds,center,修改约束的值
        iconViewButtomCon?.constant = -500
        
        // 弹簧效果动画
        // duration:持续时间 1.2
        // delay: 延时
        // usingSpringWithDamping: 弹簧效果明显程度 0 - 1
        // initialSpringVelocity: 初始速度
        //动画效果
        UIView.animateWithDuration(2.0, delay: 0.2, usingSpringWithDamping: 0.6, initialSpringVelocity: 5, options: UIViewAnimationOptions(rawValue: 0), animations: { () -> Void in
            self.view.layoutIfNeeded()
            }) { (_) -> Void in
                print("动画完成")
                
                //切换界面
//                AppDelegate.
        }
        
    }
    
    //:MARK - 准备UI
    private func prepareUI() {
        // 1,添加子控件
        //View 是控制器的跟View
        view.addSubview(BKGImageView)
        view.addSubview(iconView)
        view.addSubview(messageLabel)
        // 2,添加约束
        BKGImageView.translatesAutoresizingMaskIntoConstraints = false
        iconView.translatesAutoresizingMaskIntoConstraints = false
        messageLabel.translatesAutoresizingMaskIntoConstraints = false

        // 背景，填充(平铺)父控件
        //VFL(可视化格式语言),作用：也是使用autolayout的代码约束
        
        // NSLayoutConstraintconstraintsWithVisualFormat   返回的是约束的数组
        // format: VFL约束
        // options 默认
        // metrics: 默认
        // views: 参照映射
        
        /*
        VFL:
        H: 水平方向
        V: 垂直方向
        | 父控件的边界
        [] 表示view
        */
        
        //创建约束,通过类方法
        //左边和右边距离父控件都为0(H:水平方向)
        view.addConstraints(NSLayoutConstraint.constraintsWithVisualFormat("H:|[biv]|", options: NSLayoutFormatOptions(rawValue: 0), metrics: nil, views: ["biv" : BKGImageView]))
        
        //顶部和底部距离父控件也是为0(V:垂直方向)
        view.addConstraints(NSLayoutConstraint.constraintsWithVisualFormat("V:|-0-[biv]-0-|", options: NSLayoutFormatOptions(rawValue: 0), metrics: nil, views: ["biv" : BKGImageView]))
        
        
        //头像
        //头像的CenterX(中心点)和父控件的CenterX(中心点)重合
       view.addConstraint(NSLayoutConstraint(item: iconView, attribute: NSLayoutAttribute.CenterX, relatedBy: NSLayoutRelation.Equal, toItem: view, attribute: NSLayoutAttribute.CenterX, multiplier:1 , constant: 0))
        
        // 在其他地方使用这个约束,做动画
      iconViewButtomCon = NSLayoutConstraint(item: iconView, attribute: NSLayoutAttribute.Bottom, relatedBy: NSLayoutRelation.Equal, toItem: view, attribute: NSLayoutAttribute.Bottom, multiplier: 1, constant: -160)
        view.addConstraint(iconViewButtomCon!)
        
        //欢迎lable
        view.addConstraint(NSLayoutConstraint(item: messageLabel, attribute: NSLayoutAttribute.CenterX, relatedBy: NSLayoutRelation.Equal, toItem: iconView, attribute: NSLayoutAttribute.CenterX, multiplier: 1, constant: 0))
        view.addConstraint(NSLayoutConstraint(item: messageLabel, attribute: NSLayoutAttribute.Top, relatedBy: NSLayoutRelation.Equal, toItem: iconView, attribute: NSLayoutAttribute.Bottom, multiplier: 1, constant: 16))
    }
    
    //:MARK - 懒加载控件
    ///背景
    private lazy var BKGImageView: UIImageView = UIImageView(image: UIImage(named: "ad_background"))
    ///头像(用这个懒加载因为还要进行，切圆角头像)
    private lazy var iconView:UIImageView = {
        let view = UIImageView(image: UIImage(named: "avatar_default_big"))
        
        //设置圆角(宽高：85)
        //圆的半径
        view.layer.cornerRadius = 42.5
        view.layer.masksToBounds = true
        
        return view
    }()
    
    ///消息Label
    private lazy var messageLabel: UILabel = {
        let label = UILabel()
        
        label.text = "欢迎回来"
        //自动适应大小
        label.sizeToFit()
        
        return label
    }()
}
